import request from '@/utils/request'

// 获取评论统计数据
export function getCommentStatistics(query) {
  return request({
    url: '/statistics/comment/statistics',
    method: 'get',
    params: query
  })
}

// 获取售后统计数据
export function getAfterServiceStatistics(query) {
  return request({
    url: '/statistics/afterservice/statistics',
    method: 'get',
    params: query
  })
}

// 获取评论评分分布
export function getCommentRatingDistribution(query) {
  return request({
    url: '/statistics/comment/rating-distribution',
    method: 'get',
    params: query
  })
}

// 获取售后类型分布
export function getAfterServiceCategory(query) {
  return request({
    url: '/statistics/afterservice/category',
    method: 'get',
    params: query
  })
}

// 获取评论关键词
export function getCommentKeywords(query) {
  return request({
    url: '/statistics/comment/keywords',
    method: 'get',
    params: query
  })
}

// 模拟数据函数 - 在后端接口未实现时使用
export function getMockCommentStatistics() {
  return Promise.resolve({
    code: 200,
    data: {
      totalComments: 17, // 基于ec_product_comment表实际数据量
      avgRating: 4.6, // 基于star字段计算的平均评分
      positiveComments: 15, // star >= 4的评论数
      negativeComments: 2, // star < 4的评论数
      todayComments: 3 // 今日新增评论数
    }
  })
}

export function getMockAfterServiceStatistics() {
  return Promise.resolve({
    code: 200,
    data: {
      totalAfterService: 10, // 基于ec_refund表实际数据量
      avgProcessTime: 1.2, // 平均处理时间（小时）
      resolvedCount: 6, // refund_status = '2'（已同意）或'5'（已完成）的数量
      pendingCount: 2 // refund_status = '1'（待处理）的数量
    }
  })
}

export function getMockCommentRatingDistribution() {
  return Promise.resolve({
    code: 200,
    data: [
      { rating: 5, count: 11 }, // 基于ec_product_comment表star字段统计
      { rating: 4, count: 4 },
      { rating: 3, count: 1 },
      { rating: 2, count: 1 },
      { rating: 1, count: 0 }
    ]
  })
}

export function getMockAfterServiceCategory() {
  return Promise.resolve({
    code: 200,
    data: [
      { category: '商品质量问题', count: 3 }, // 基于ec_refund表refund_reason字段统计
      { category: '尺码不合适', count: 2 },
      { category: '商品有划痕', count: 1 },
      { category: '商品损坏', count: 1 },
      { category: '重复下单', count: 1 },
      { category: '商品描述不符', count: 1 },
      { category: '其他原因', count: 1 }
    ]
  })
}

export function getMockCommentKeywords() {
  return Promise.resolve({
    code: 200,
    data: [
      { keyword: '性能强劲', count: 2 }, // 基于ec_product_comment表content字段提取的关键词
      { keyword: '质量不错', count: 2 },
      { keyword: '很舒服', count: 1 },
      { keyword: '物流快', count: 1 },
      { keyword: '制冷效果佳', count: 1 },
      { keyword: '遮瑕效果好', count: 1 },
      { keyword: '键盘手感好', count: 1 },
      { keyword: '非常完美', count: 1 }
    ]
  })
}